Giá phải trả cho việc trừu tượng hóa Ngôn_ngữ_lập_trình_bậc_cao

Các ngôn ngữ cấp cao có ý định cung cấp các tính năng chuẩn hóa các tác vụ phổ biến, cho phép gỡ lỗi phong phú và duy trì thuyết bất khả tri kiến trúc; trong khi các ngôn ngữ cấp thấp thường tạo ra mã hiệu quả hơn thông qua việc tối ưu hóa cho một kiến trúc hệ thống cụ thể. Hình phạt trừu tượng là chi phí mà các kỹ thuật lập trình cấp cao phải trả cho việc không thể tối ưu hóa hiệu suất hoặc sử dụng một số phần cứng nhất định vì chúng không tận dụng được một số tài nguyên kiến trúc cấp thấp nhất định. Lập trình cấp cao thể hiện các tính năng như cấu trúc và hoạt động dữ liệu chung hơn, diễn giải thời gian chạy và tệp mã trung gian; thường dẫn đến việc thực hiện nhiều hoạt động hơn mức cần thiết, tiêu thụ bộ nhớ cao hơn và kích thước chương trình nhị phân lớn hơn. [6] [7] [8] Vì lý do này, mã cần chạy đặc biệt nhanh chóng và hiệu quả có thể yêu cầu sử dụng ngôn ngữ cấp thấp hơn, ngay cả khi ngôn ngữ cấp cao hơn sẽ làm cho việc viết mã dễ dàng hơn. Trong nhiều trường hợp, các phần quan trọng của chương trình chủ yếu bằng ngôn ngữ cấp cao có thể được mã hóa thủ công bằng hợp ngữ, dẫn đến một chương trình được tối ưu hóa hoạt động nhanh hơn, hiệu quả hơn hoặc đơn giản là hoạt động đáng tin cậy.

Tuy nhiên, với sự phức tạp ngày càng tăng của các kiến trúc vi xử lý hiện đại, các trình biên dịch được thiết kế tốt cho các ngôn ngữ cấp cao thường tạo ra mã hiệu quả tương đương với những gì mà hầu hết các lập trình viên cấp thấp có thể tạo ra bằng tay và độ trừu tượng cao hơn có thể cho phép các kỹ thuật mạnh mẽ hơn cung cấp tốt hơn kết quả tổng thể hơn so với các đối tác cấp thấp của chúng trong các cài đặt cụ thể. [9] Các ngôn ngữ cấp cao được thiết kế độc lập với một kiến trúc hệ thống máy tính cụ thể. Điều này tạo điều kiện thuận lợi cho việc thực thi một chương trình được viết bằng ngôn ngữ như vậy trên bất kỳ hệ thống máy tính nào có hỗ trợ tương thích cho chương trình Được thông dịch hoặc JIT . Các ngôn ngữ cấp cao có thể được cải thiện khi các nhà thiết kế của họ phát triển các cải tiến. Trong các trường hợp khác, các ngôn ngữ cấp cao mới phát triển từ một hoặc nhiều ngôn ngữ khác với mục tiêu tổng hợp các cấu trúc phổ biến nhất với các tính năng mới hoặc cải tiến. Một ví dụ về điều này là Scala duy trì khả năng tương thích ngược với Java có nghĩa là các chương trình và thư viện được viết bằng Java sẽ tiếp tục sử dụng được ngay cả khi một cửa hàng lập trình chuyển sang Scala; điều này làm cho quá trình chuyển đổi dễ dàng hơn và tuổi thọ của mã hóa cấp cao như vậy là vô thời hạn. Ngược lại, các chương trình cấp thấp hiếm khi tồn tại ngoài kiến trúc hệ thống mà chúng được viết cho mà không cần sửa đổi lớn. Đây là kỹ thuật 'đánh đổi' cho 'Hình phạt vì việc trừu tượng hóa'.

Tài liệu tham khảo

WikiPedia: Ngôn_ngữ_lập_trình_bậc_cao ftp://lispnyc.org/meeting-assets/2007-02-13_pinku/... http://www.adtmag.com/joop/article.aspx?id=4597 http://c2.com/cgi/wiki?HighLevelLanguage http://www.clip.dia.fi.upm.es/papers/carro06:strea... http://doi.ieeecomputersociety.org/10.1109/85.5860... //www.worldcat.org/oclc/635507601 https://web.archive.org/web/20070826224349/http://... https://web.archive.org/web/20090111091710/http://... https://web.archive.org/web/20150217154926/http://...